import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart';
import 'package:niuniu/common/service/HttpService.dart';
import 'package:niuniu/common/service/UserService.dart';
import 'package:niuniu/common/widget/LoadingWidget.dart';
import 'package:niuniu/pages/home/controller.dart';
import 'package:niuniu/pages/login/controller.dart';
import 'package:get/get.dart';

import 'common/service/ConfigService.dart';
import 'common/util/StorageUtil.dart';

class Global {
  static Future<void> init() async {
    WidgetsBinding widgetsBinding =
    // splash 等待Flutter初始化完成
    WidgetsFlutterBinding.ensureInitialized();
    FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);

    // 系统样式
    setSystemUi();

    // 工具类
    await StorageUtil().init();
    LoadingWidget();

    // await Future.wait([
    //   Get.putAsync<ConfigService>(() async => await ConfigService().init()), // Get.put 方式直接注入
    // ]).whenComplete(() {});

    // 初始化服务，Get.put 方式直接注入
    Get.put<ConfigService>(ConfigService());
    Get.put<HttpService>(HttpService());
    Get.put<UserService>(UserService());
    Get.put(LoginController());
    Get.put(HomeController());
  }

  // 系统样式
  static void setSystemUi() {
    if (GetPlatform.isMobile) {
      // 屏幕方向 竖直上
      SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
      // 透明状态栏
      // SystemChrome.setSystemUIOverlayStyle( SystemUiOverlayStyle(
      //   statusBarColor: Colors.transparent, // transparent status bar
      // ));
    }

    // if (GetPlatform.isAndroid) {
    //   // 去除顶部系统下拉和底部系统按键
    //   // SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []);
    //   // 去掉底部系统按键
    //   // SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,
    //   //     overlays: [SystemUiOverlay.bottom]);
    //®®
    //   // 自定义样式
    //   SystemUiOverlayStyle systemUiOverlayStyle =  SystemUiOverlayStyle(
    //     // 顶部状态栏颜色
    //     statusBarColor: Colors.transparent,
    //     // 该属性仅用于 iOS 设备顶部状态栏亮度
    //     // statusBarBrightness: Brightness.light,
    //     // 顶部状态栏图标的亮度
    //     // statusBarIconBrightness: Brightness.light,
    //
    //     // 底部状态栏与主内容分割线颜色
    //     systemNavigationBarDividerColor: Colors.transparent,
    //     // 底部状态栏颜色
    //     systemNavigationBarColor: Colors.white,
    //     // 底部状态栏图标样式
    //     systemNavigationBarIconBrightness: Brightness.dark,
    //   );
    //   SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
    // }
  }
}
